package com.AdvancedDemos.接口.学生信息接口案例;

import java.util.ArrayList;

public class ClassManage {
    private ArrayList<Student> students = new ArrayList<>();

    //    private StudentOperator studentOperator = new StudentOperatorImpl1();//用接口变量指向实现类1的对象
    private StudentOperator studentOperator = new StudentOperatorImpl2();//用接口变量指向实现类2的对象

    /*当要启用另一套功能时,只需要修改赋给接口变量的实现类对象即可启用另一套重写函数*/


    /**
     * 无参构造,初始化
     */
    public ClassManage() {
        students.add(new Student("卢本伟", '男', 55));
        students.add(new Student("李彦宏", '男', 48));
        students.add(new Student("韩金龙", '男', 45));
        students.add(new Student("刘波", '男', 47));
    }

    //打印全班学生的信息
    public void printInfo() {
        studentOperator.printAllInfo(students);//接口变量调用实现类重写的方法
    }

    //打印全班全部学生的平均分
    public void printScore() {
        studentOperator.printAverageScore(students);//接口变量调用实现类重写的方法
    }
}
